<?php
/**
 * 通用通知接口
 * ====================================================
 * 支付完成后，微信会把相关支付和用户信息发送到商户设定的通知URL，
 * 商户接收回调信息后，根据需要设定相应的处理流程。
 */
include_once "./lib/WxPay.Api.php";

//使用通用通知接口
$notify = new Notify();

//存储微信的回调
$xml = $GLOBALS['HTTP_RAW_POST_DATA'];
$notify->saveData($xml);

/**
 * 验证签名，并回应微信。
 * 对后台通知交互时，如果微信收到商户的应答不是成功或超时，微信认为通知失败，
 * 微信会通过一定的策略（如30分钟共8次）定期重新发起通知，
 * 尽可能提高通知的成功率，但微信不保证通知最终能成功。
 */
if($notify->checkSign() == FALSE){
    $notify->setReturnParameter("return_code","FAIL");//返回状态码
    $notify->setReturnParameter("return_msg","签名失败");//返回信息
}else{
    $notify->setReturnParameter("return_code","SUCCESS");//设置返回码
}
echo $returnXml;


//==商户根据实际情况设置相应的处理流程=====
if($notify->checkSign() == TRUE) {
    if ($notify->data["return_code"] == 'FAIL') {
        //update order status
        //【通信出错】
    } elseif  ($notify->data['result_code'] == 'FAIL') {
        //update order status
        //【业务出错】
    } else {
        //update order status
        //【支付成功】
        //[更新订单状态] -> [数据库操作] -> [推送支付完成信息]
    }
}